package com.aspose.cells;

class zhi extends zo {
   private zo d;
   private zo e;
   private zo f;
   private zj g;
   private int h;

   public zhi(zhh var1, String var2) {
      super(var1, var2);
   }

   protected void a(char[] var1, int var2, int var3) {
      StringBuilder var4 = new StringBuilder(var3 - var2);
      super.d(var1, var2, var3, var4);
      var1 = com.aspose.cells.b.a.zr.a(var4).toCharArray();
      var2 = 0;
      var3 = var1.length;
      var4.setLength(0);
      int var5 = -1;
      int var6 = -1;
      int var7 = -1;
      boolean var8 = false;
      boolean var9 = false;

      while(true) {
         boolean var10;
         while(var2 < var3) {
            switch(var1[var2]) {
            case '#':
            case '0':
               if (var7 > 0 && var7 < var2) {
                  var5 = var7;
                  var8 = false;
               }

               ++var2;
               var7 = var2;
               break;
            case '/':
               var6 = var2;
               if (var5 < 0) {
                  var8 = false;
                  var2 = var3;
               } else if (var8) {
                  var9 = true;
                  var2 = var3;
               } else {
                  ++var2;
                  var7 = -1;
                  var10 = true;

                  while(true) {
                     while(var2 < var3) {
                        switch(var1[var2]) {
                        case '#':
                        case '0':
                           ++var2;
                           var7 = var2;
                           if (!var9) {
                              var10 = false;
                           }
                           break;
                        case '?':
                           var9 = true;
                           ++var2;
                           var7 = var2;
                           break;
                        default:
                           if (var7 > -1) {
                              if (var1[var2] > '0' && var1[var2] <= '9') {
                                 ++var2;
                                 var7 = var2;
                              } else {
                                 var2 = var3;
                              }
                           } else {
                              var2 = b(var1, var2, var3);
                           }
                        }
                     }

                     if (var9 && var10) {
                        var8 = true;
                     }
                     break;
                  }
               }
               break;
            case '?':
               if (var7 > 0 && var7 < var2) {
                  var5 = var7;
               }

               var8 = true;
               ++var2;
               var7 = var2;
               break;
            default:
               var2 = b(var1, var2, var3);
            }
         }

         var10 = true;
         boolean var11 = false;
         StringBuilder var12 = null;
         boolean var13 = true;
         var7 = -1;
         var2 = 0;
         zlu var14;
         if (var5 > -1) {
            var4.setLength(0);

            while(true) {
               while(var2 < var5) {
                  switch(var1[var2]) {
                  case '#':
                     if (var7 > -1 && var7 < var2) {
                        var10 = false;
                     }

                     var4.append((char)(var11 ? '0' : '#'));
                     var7 = var2 + 1;
                     break;
                  case '*':
                  case '_':
                     var10 = false;
                     var4.append(var1[var2]);
                     ++var2;
                     if (var2 < var3) {
                        var4.append(var1[var2]);
                        ++var2;
                     }
                     continue;
                  case '0':
                     if (var7 > -1 && var7 < var2) {
                        var10 = false;
                     }

                     var11 = true;
                     var4.append('0');
                     var7 = var2 + 1;
                     break;
                  case '?':
                     var4.append('?');
                     var10 = false;
                     var7 = var2 + 1;
                     break;
                  case '[':
                     var2 = this.a.a(var1, var2, var3, var4, false);
                     continue;
                  default:
                     var2 = this.b(var1, var2, var3, var4);
                     continue;
                  }

                  ++var2;
               }

               if (var9) {
                  var12 = new StringBuilder(var1.length);
                  var12.append(com.aspose.cells.b.a.zr.a(var4));
                  if (!var11) {
                     var12.setCharAt(var5 - 1, '0');
                  }

                  var12.append(' ');
                  var13 = var10;
               } else if (!var11) {
                  var4.setCharAt(var5 - 1, '0');
               }

               if (var10) {
                  this.d = new zbmn(this.a, com.aspose.cells.b.a.zr.a(var4));
               } else {
                  var14 = new zlu(this.a, com.aspose.cells.b.a.zr.a(var4));
                  this.d = var14;
               }
               break;
            }
         }

         var10 = true;
         var11 = false;
         var4.setLength(0);
         var7 = -1;

         while(true) {
            while(var2 < var6) {
               switch(var1[var2]) {
               case '#':
                  if (var11) {
                     var4.append('0');
                  } else {
                     var7 = -var4.length() - 2;
                  }
                  break;
               case '*':
               case '_':
                  var10 = false;
                  var4.append(var1[var2]);
                  if (var8) {
                     var13 = false;
                     var12.append(var1[var2]);
                  }

                  ++var2;
                  if (var2 < var3) {
                     var4.append(var1[var2]);
                     if (var8) {
                        var12.append(var1[var2]);
                     }

                     ++var2;
                  }
                  continue;
               case '0':
                  var11 = true;
                  var4.append('0');
                  if (var8) {
                     var13 = false;
                     var12.append("_0");
                  }
                  break;
               case '?':
                  var4.append('?');
                  var10 = false;
                  if (var8) {
                     var12.append(' ');
                  }

                  var7 = var4.length();
                  break;
               case '[':
                  var2 = this.a.a(var1, var2, var3, var4, false);
                  continue;
               default:
                  if (var8) {
                     var13 = false;
                     this.e(var1, var2, var3, var12);
                  }

                  var2 = this.b(var1, var2, var3, var4);
                  continue;
               }

               ++var2;
            }

            if (!var11) {
               if (var7 > 0) {
                  var4.setCharAt(var7 - 1, '0');
               } else if (var7 < -1) {
                  var4.insert(-var7 - 2, '0');
               }
            }

            if (var10) {
               this.f = new zbmn(this.a, com.aspose.cells.b.a.zr.a(var4));
            } else {
               var14 = new zlu(this.a, com.aspose.cells.b.a.zr.a(var4));
               this.f = var14;
            }

            if (var8) {
               var12.append("_/");
            }

            var10 = true;
            var11 = false;
            var4.setLength(0);
            var7 = -1;
            this.h = 0;
            int var16 = 0;
            ++var2;

            while(true) {
               while(var2 < var3) {
                  switch(var1[var2]) {
                  case '#':
                     if (var7 > -1 && var7 < var2) {
                        var4.append("\\0");
                     } else {
                        var4.append((char)(var11 ? '0' : '#'));
                        ++var16;
                        var7 = var2 + 1;
                     }
                     break;
                  case '*':
                  case '_':
                     var10 = false;
                     var4.append(var1[var2]);
                     if (var9) {
                        var13 = false;
                        var12.append(var1[var2]);
                     }

                     ++var2;
                     if (var2 < var3) {
                        var4.append(var1[var2]);
                        if (var9) {
                           var12.append(var1[var2]);
                        }

                        ++var2;
                     }
                     continue;
                  case '0':
                     if (var7 > -1 && var7 < var2) {
                        var4.append("\\0");
                     } else {
                        var11 = true;
                        var4.append('0');
                        ++var16;
                        if (this.h > 0) {
                           this.h *= 10;
                        }

                        var7 = var2 + 1;
                     }

                     if (var9) {
                        var13 = false;
                        var12.append("_0");
                     }
                     break;
                  case '?':
                     if (var7 > -1 && var7 < var2) {
                        var4.append("\\0");
                     } else {
                        var4.append('?');
                        ++var16;
                        var10 = false;
                        if (var9) {
                           var12.append(' ');
                        }

                        var7 = var2 + 1;
                     }
                     break;
                  case '[':
                     var2 = this.a.a(var1, var2, var3, var4, false);
                     continue;
                  default:
                     if (var7 >= 0 && var7 != var2 || var1[var2] <= '0' || var1[var2] > '9') {
                        if (var9 && var7 > -1) {
                           var13 = false;
                           this.e(var1, var2, var3, var12);
                        }

                        var2 = this.b(var1, var2, var3, var4);
                        continue;
                     }

                     if (this.h <= 0) {
                        this.h = var1[var2] - 48;
                     } else {
                        this.h = this.h * 10 + (var1[var2] - 48);
                     }

                     var4.append(var1[var2]);
                     var7 = var2 + 1;
                  }

                  ++var2;
               }

               if (this.h == 0) {
                  if (var10) {
                     this.g = new zbmn(this.a, com.aspose.cells.b.a.zr.a(var4));
                  } else {
                     this.g = new zabi(this.a, com.aspose.cells.b.a.zr.a(var4));
                  }

                  var4.setLength(0);
               } else {
                  this.g = new zht(this.a, com.aspose.cells.b.a.zr.a(var4));
               }

               if (this.h == 0) {
                  this.h = -var16;
               }

               if (var9) {
                  if (var13) {
                     this.e = new zbmn(this.a, com.aspose.cells.b.a.zr.a(var12));
                  } else {
                     zlu var15 = new zlu(this.a, com.aspose.cells.b.a.zr.a(var12));
                     this.e = var15;
                  }
               } else if (this.d != null) {
                  this.e = this.d;
               }

               return;
            }
         }
      }
   }

   private void e(char[] var1, int var2, int var3, StringBuilder var4) {
      switch(var1[var2]) {
      case '"':
         ++var2;

         while(var2 < var3) {
            if (var1[var2] == '"') {
               ++var2;
               return;
            }

            var4.append('_');
            var4.append(var1[var2]);
            ++var2;
         }

         return;
      case '\\':
         var4.append('_');
         ++var2;
         if (var2 < var3) {
            var4.append(var1[var2]);
            ++var2;
         }
         break;
      default:
         var4.append('_');
         var4.append(var1[var2]);
         ++var2;
      }

   }

   protected double c(double var1) {
      if (var1 == 0.0D) {
         return 0.0D;
      } else {
         boolean var3 = var1 < 0.0D;
         if (var3) {
            var1 = -var1;
         }

         int var4;
         if (this.h > 0) {
            var4 = this.h;
         } else {
            var4 = this.d(var1 - Math.floor(var1));
         }

         var1 = Math.floor(var1 * (double)var4 + 0.5D) / (double)var4;
         return var3 ? -var1 : var1;
      }
   }

   public void a(zxu var1, double var2, zxz var4) {
      StringBuilder var5 = new StringBuilder();
      boolean var6 = var2 < 0.0D;
      if (var6) {
         var2 = -var2;
      }

      double var7 = Math.floor(var2);
      if (this.d != null) {
         var2 -= var7;
         if (var2 == 0.0D) {
            this.a(var1, var6 ? -var7 : var7, var4, var5);
            return;
         }
      }

      double var9;
      int var11;
      int var12;
      if (this.h > 0) {
         var9 = var2 * (double)this.h;
         if (var9 >= 32767.5D) {
            var4.a(var1.b());
            return;
         }

         if (this.d != null) {
            var12 = (int)(var9 + 0.5D);
            if (var12 == 0) {
               this.a(var1, var6 ? -var7 : var7, var4, var5);
               return;
            }

            if (var12 == this.h) {
               this.a(var1, var6 ? -var7 - 1.0D : var7 + 1.0D, var4, var5);
               return;
            }
         }

         var11 = this.h;
      } else {
         if (var2 == 0.0D) {
            var9 = 0.0D;
            var11 = 1;
         } else {
            var11 = this.d(this.d != null ? var2 : var2 - var7);
            var9 = var2 * (double)var11;
         }

         var12 = (int)(var9 + 0.5D);
         if (var12 == 0) {
            if (this.d != null) {
               this.a(var1, var6 ? -var7 : var7, var4, var5);
               return;
            }

            var11 = 1;
         } else if (var12 == var11) {
            if (this.d != null) {
               this.a(var1, var6 ? -var7 - 1.0D : var7 + 1.0D, var4, var5);
               return;
            }

            var9 = 1.0D;
            var11 = 1;
         }
      }

      zxz var13;
      if (this.d != null) {
         if (var6) {
            var5.append('-');
         }

         var13 = this.d.a(var1, 14, var7);
         this.a(var4, var13, var5.length());
         if (!var13.c()) {
            var5.append(var13.g());
         }

         var6 = false;
      }

      var13 = this.f.a(var1, 14, var6 ? -var9 : var9);
      this.a(var4, var13, var5.length());
      if (!var13.c()) {
         var5.append(var13.g());
      }

      var5.append('/');
      if (this.g != null) {
         var13 = this.g.a((zxu)var1, 9, (Object)var11);
         this.a(var4, var13, var5.length());
         if (!var13.c()) {
            var5.append(var13.g());
         }
      }

      var4.a(4, (char[])com.aspose.cells.b.a.zr.a(var5).toCharArray());
   }

   private void a(zxu var1, double var2, zxz var4, StringBuilder var5) {
      zxz var6 = this.e.a(var1, 14, var2);
      this.a(var4, var6, var5.length());
      if (!var6.c()) {
         var5.append(var6.g());
      }

      var4.a(4, (char[])com.aspose.cells.b.a.zr.a(var5).toCharArray());
   }

   private int d(double var1) {
      int var3 = (int)Math.pow(10.0D, (double)(-this.h));
      int var4 = 2;
      double var5 = 1.0D;

      for(int var9 = 2; var9 < var3; ++var9) {
         double var7 = var1 * (double)var9;
         var7 -= Math.floor(var7);
         if (var7 < 0.5D) {
            if (var7 < var5) {
               var5 = var7;
               var4 = var9;
            }
         } else {
            var7 = 1.0D - var7;
            if (var7 < var5) {
               var5 = var7;
               var4 = var9;
            }
         }
      }

      return var4;
   }

   public int a() {
      return 4;
   }

   public int g() {
      return 5;
   }
}
